Sherr アップデート
概要
Macで使える、*.shを放り込むとダブルクリックで使えるようになるアプリ
Sherr.app を私利私欲に基づいてアップデートした。
https://github.com/sassembla/Sherr
いちいちnodeとかshellをコマンドラインから叩いたりとかしてるひとにオススメ。
定期実行とかも可能になった。
機能追加一覧
1.放り込むshellに絶対パスでいろいろ書かないと動かないクソ仕様だった
放り込んだ*.shを、Sherr.appが置いてあるパスで叩いたのと同じ挙動になるように変更。
shellからの呼び出し先指定を気にしないでよくなった。
2.再帰的なshellの呼び出しを行えるようにした
shellを実行するためのマイクロサーバっぽくなった。
Sherr.app起動中、Sherr.appの中のcontinue.shを外部のshellとかから呼ぶことで、
Sherr.appをもう一度叩いた事になるようにした。つまりいくらでもいつでもネストできる。
sh ./Sherr.app/Contents/Resources/continue.sh
たとえば100回実行したい処理があったとして、
ファイルに回数を記録していって、それが100にとどくまで
処理 > カウントアップ > continue.shを呼ぶ
と繰り返えさせる事で、えらい速さで動く。
権限がappに準ずるので、ほとんどユーザー動作として動く感じ。
具体霊
100回ベンチを計りたい処理があったとして、
下記のようなshellを書いて、Sherr.appに喰わせると、高速に100回動いてとまる。
sample100.sh
filename=./record.txt
maxCount=100
if [ -f "${filename}" ]; then
echo "continue."
else
echo "generate file."
touch ${filename}
fi
# The behaviour what you want to benchmark
pwd
# get elapsed time & note it.
passedTime="だが断る"
echo $passedTime >> ${filename}
# count record-line num.
countbase=$(wc -l ${filename})
# trim filename with space.
count=${countbase% *}
if [ ${count} -lt ${maxCount} ]; then
# run next soon. add Token if need.
sh ./Sherr.app/Contents/Resources/continue.sh
fi
で、下記のような嫌がらせみたいなファイルが出来上がっていればOK
record.txt